package com.ruicar.afs.cloud.common.vo;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.ruicar.afs.cloud.common.modules.contract.enums.BusinessTypeEnum;
import com.ruicar.afs.cloud.common.modules.contract.enums.ReceiptSourceTypeEnum;
import com.ruicar.afs.cloud.common.modules.contract.enums.ReceiptStatusEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @author infinitybi
 * @version 1.0
 * @date 2020/8/7 19:08
 */
@Data
public class CollectCancelVo {
    @JsonSerialize( using = ToStringSerializer.class)
    private Long id;
    @ApiModelProperty("申请编号")
    private String applyNo;

    @ApiModelProperty("案件号")
    private String caseNo;
    /**
     * 案件类型
     */
    @ApiModelProperty("案件类型  枚举值：对公结算，微信还款，银行代扣")
    private ReceiptSourceTypeEnum sourceType;

    @ApiModelProperty("收据状态 枚举值：收款成功，撤销审核中，已撤销")
    private ReceiptStatusEnum receiptStatus;
    /**
     * 合同号
     */
    @ApiModelProperty("合同号")
    private String contractNo;
    /**
     * 收款银行 央行标准银行代码
     */
    @ApiModelProperty("收款银行 央行标准银行代码")
    private String bankCode;
    /**
     * 收款银行（分支行）
     */
    @ApiModelProperty("收款银行（分支行）")
    private String bankName;
    /**
     * 收款电子联行号
     */
    @ApiModelProperty("收款电子联行号")
    private String ebankCode;
    /**
     * 收款账户名称
     */
    @ApiModelProperty("收款账户名称")
    private String accountName;
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("收款成功时间")
    private Date succeedTime;
    @ApiModelProperty("扣款入账银行账号")
    private String creditAccount;
    @ApiModelProperty("收款金额 不可为负数")
    private BigDecimal arriveAmt;
    @ApiModelProperty("摘要")
    private String summary;
    /** 收款来源id */
    @ApiModelProperty("收款来源id")
    private Long sourceId;
    @ApiModelProperty("业务类型")
    private BusinessTypeEnum businessType;
}
